Combining redundant inertial sensors to create a virtual sensor output

ABSTRACT

Included are embodiments for determining an inertial quantity. One embodiment of a method includes combining readings from a plurality of inertial sensors to produce an estimate of the value of an inertial quantity in a manner that is fault-tolerant, more accurate than traditional sensor arrangements, and able to handle non-linear and non-Gaussian systems. Embodiments of a method also include utilizing a Monte Carlo estimation-based inference system to adaptively combine the inertial sensor outputs into a fault-tolerant highly-accurate inertial quantity estimate, an axis-reversed-paired physical arrangement of inertial sensors to minimize effects of environmental and process noise, and cross-associating sensors to ensure good sensor associations and reduce the effects of sample impoverishment.

CROSS REFERENCE

This application is a continuation of PCT Application entitled“Combining Redundant Inertial Sensors to Create a Virtual SensorOutput,” having a Serial Number PCT/IB2010/003510, filed Nov. 24, 2010,which claims priority to U.S. Provisional Application entitled, “MEMSBased Inertial Measurement Units,” having Ser. No. 61/264,006, filedNov. 24, 2009.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates to the field of inertial sensors andinstrumentation, and in particular to the processing of redundantinertial sensor data to improve accuracy, using a Monte Carloestimation-based inference system applicable to estimating linear,non-linear, Gaussian and non-Gaussian systems.

2. Background

The inertial measurement unit (IMU) is a critical component for a widerange of applications ranging from aerospace and missile guidancesystems, to robotics and navigation systems, to interactive games andsimulations. IMU systems incorporate angular rate sensors as asystem-critical component that detects changes in the orientation of thesystem. Gyroscopic sensor system performance is generally dominated bytwo critical performance characteristics: bias drift and noisecomponents. These include inaccuracies induced by sources such as biasdrift, rate random walk, angular random walk, process noise, measurementnoise, thermal noise, and even sensor failure.

Recently, gyroscopic rate sensors enabled by micro-electro-mechanicalsystems (MEMS) technologies have produced revolutionary reductions insize, cost, and power consumption over traditional electro-optical andelectro-mechanical systems. Additionally, since MEMS-based systems arepackaged as and used in production as any other semiconductor device,final integrated systems can be more rugged and more easily massproduced. Despite these tremendous advantages however, currentstate-of-the-art MEMS rate sensors cannot compete with traditionalnon-MEMS gyroscopic systems with respect to bias drift and noiserejection.

Bias drift, the tendency to lose position over time, is a pervasiveproblem within MEMS products that must be avoided or controlled at thecomponent level and/or at the control/algorithmic level. MEMS componentsare subject to drift due to surface charging in some cases, and mostcommonly due to stress on and within the MEMS units. As the units areput under temperature pressure, physical stress, and other environmentalfactors, stresses between the materials in the MEMS units create signalsthat look similar to an electrical velocity or acceleration signal, thuscausing integrative inertial calculations to drift. Traditionally,developers have opted for larger units, additional packaging layers,tight temperature control, and filtering to reduce bias drift.

Noise, resulting from a number of physical phenomena, generally exhibitsrandom properties that are difficult to compensate for via packaging orfiltering approaches. These random noise effects, classified as angularrandom walk, rate random walk, and angular white noise, are, by nature,unpredictable and therefore difficult to counteract. With a singlesensor configuration, differentiating noise from inertial rate becomes adaunting task, especially in MEMS systems which, due to theirmicro-electro-mechanical structure, have significant process noisemagnitudes. Understanding and characterizing these process noisecomponents can be useful in calculating sensor reading confidenceintervals, but can do little to eliminate or counteract the noise sincein single sensor systems there is no additional frame of reference bywhich noise can be cross-correlated.

Thus, gyroscopic rate sensor systems can be mechanical, electro-optical,or MEMS. While traditional electro-mechanical and electro-opticalsystems can be made to exhibit environmental noise rejection and lowbias drift characteristics, they are, by nature, larger and thus moredifficult to adapt to applications where small size and/or low-powerrequirements are important concerns. Recent efforts have focused uponusing MEMS sensors that, while resulting in smaller sizes and lowerpower requirements, have not resulted in desired environmental noiserejection or low-drift characteristics.

BRIEF SUMMARY OF THE INVENTION

This invention uses a novel sensor arrangement and algorithmic solutionthat results in small size, low power, and ease of fabricationrequirements characteristic of MEMS approaches, coupled with performancecharacteristics comparable with non-MEMS systems. Specifically, thismethod uses a geometric arrangement of inertial sensors and analgorithmic approach to correlate and combine the outputs of a pluralityof inertial sensor devices using a dynamic probability-based filteringsystem approach to sensor fusion. This approach provides forredundancies which result in a more robust, fault-tolerant system. Thesemethods could be applied to any sensor array where higher-gradeperformance characteristics are desired.

The invention claims a systematic process by which the data from a setof inertial sensor devices may be combined into a virtual sensor outputvalue by way of the application of a Monte Carlo estimation-basedinference system. The preferred embodiment may be an Unscented ParticleFilter wherein a set of particles, objects with positions chosenprobabilistically to represent sensor variance and output values, havetheir positions altered by adding noise to them based on the noisecharacteristics of the sensor devices being used. Each particle'sposition is further updated by way of being predicted by an UnscentedKalman filter. A weight is then assigned to each particle based on theprobability of the sensor data given each particle's position. Theweights of all particles are then normalized with respect to the totalof all particle weights. New particles are formed with positionsobtained from the current set of particles, with more new particlesobtaining their positions from current particles with higher weightsthan those with lower weights. The average of these new particlepositions is computed and output as the current estimate of the actualinertial quantity. The new particle set is then made the currentparticle set. This process then repeats.

The system may also utilize one or more estimation systems such as anEnsemble Kalman Filter, Particle Filter, Sampling Importance ResamplingFilter, Auxiliary Particle Filter, Extended Kalman Particle Filter,Markov Chain Monte Carlo, Condensation Particle Filter algorithm orother probability-based estimation systems. The method may bedynamically selected from a set of Monte Carlo estimation-basedinference systems based on a set of operating and desired performancecharacteristic criteria, such as algorithmic execution time or accuracy.

The invention further claims a method by which to place single- ormultiple-axis inertial sensors (such as gyroscopes, non-gyroscopic ratesensors, and accelerometers) such that the placement will result insensor pairs which have their axes reversed with respect to each other,comprising placing the sensors on a substrate such that each axis on onesensor will be inverted with respect to the corresponding axis on theother sensor. This method may be applied to an array of inertial sensorpairs.

The method may include a plurality of virtual inertial sensorsconsisting of combining a set of inertial sensor devices in a pluralityof inertial sensor devices with other inertial sensor devices in theplurality of inertial sensor devices, yielding up to 2^(N) virtualsensors from a set of N sensor devices. These virtual sensors canexhibit a greater range of operating and/or performance characteristicsfrom which to take readings, and the data from the virtual sensors maybe combined into a virtual sensor output value. Additionally, virtualsensors may be selected and their data used dynamically based on a setof operating and performance characteristic criteria, such as power drawor level of accuracy needed.

The system may be composed of MEMS or non-MEMS inertial sensor devices,processors, and other electronic hardware components, and the processmay be performed by software controlled computers, firmware controlleddigital processors, logic circuits, analog circuits, andapplication-specific integrated circuits. Furthermore, each inertialsensor device may have one or more measurement axes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A depicts an embodiment placing single-axis inertial sensordevices such that they are axis-reversed, as viewed from an angle.

FIG. 1B depicts an embodiment placing single-axis inertial sensordevices such that they are axis-reversed, as viewed from side-on.

FIG. 1C depicts an embodiment placing three-axis inertial sensor devicessuch that they are axis-reversed, as viewed from an angle.

FIG. 2A depicts an embodiment of axis-reversed inertial sensor devicesplaced in an array, as viewed from an angle.

FIG. 2B depicts an embodiment of axis-reversed inertial sensor devicesplaced in an array, as viewed from side-on.

FIG. 2C depicts several embodiments of axis-reversed inertial sensordevices placed in an array.

FIG. 3 depicts an embodiment of two groups of inertial sensor devicescombined via cross-pairing to make virtual sensors.

FIG. 4 depicts a flowchart of the execution of an embodiment of theoverall system.

FIG. 5 depicts a flowchart of the execution of the Unscented ParticleFilter algorithm as an embodiment of the Monte Carlo estimation-basedinference system.

FIG. 6 depicts a flowchart of an embodiment of the use of a Monte Carloestimation-based inference system to produce a virtual sensor outputvalue from an array of inertial sensor devices.

FIG. 7 depicts a flowchart of an embodiment of the combining of a firstset of inertial sensor data with a second set of inertial sensor data toproduce a virtual sensor output value.

The invention and its various embodiments may be better understood bythe following detailed descriptions of the preferred embodiments whichare presented as examples of the invention defined in the claims. It isunderstood that the invention as defined by the claims may be broaderthan the illustrated embodiments described below.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

This document is to be understood as defining not only a set ofprocesses and sensor device configurations which will achieve our statedpurpose, but also a physical system that may perform this process andcontain sensor devices in the given configurations. The system may becomposed of MEMS or non-MEMS inertial sensor devices, processors, andother electronic hardware components, and the process may be performedby software controlled computers, firmware controlled digitalprocessors, logic circuits, analog circuits, and application-specificintegrated circuits. Furthermore, each inertial sensor device may haveone or more measurement axes.

FIG. 6 depicts a method of acquiring inertial sensor data 601 from anarray of inertial sensor devices 600, combining the inertial sensor datautilizing a Monte Carlo estimation-based inference system 602, andoutputting a virtual sensor output value 603 that estimates an inertialquantity in a manner that is fault-tolerant, more accurate thantraditional sensor device arrangements, and able to handle non-linearand non-Gaussian systems. The use of a Monte Carlo estimation-basedinference system adaptively combines the inertial sensor data into afault-tolerant highly-accurate inertial quantity estimate.

Further, an axis-reversed-paired physical arrangement of inertialsensors minimizes the effects of environmental and process noise, and amethod of cross-associating pairings ensures good sensor pairings andreduces the effects of sample impoverishment. The design achievesultra-low drift and high noise rejection characteristics in four ways,resulting in a stable IMU.

Sensor Configuration

Inertial sensor devices will be mounted in an axis-reversedconfiguration that will allow differential measurement to take place.FIG. 1A and FIG. 1B depict a mounting of 1-axis angular rate sensorsthat achieves axis reversal. FIG. 1A is a view of the system at anangle, and 1B is a lateral view of the system. As illustrated, inertialsensor device 101 is mounted to a substrate 100, with an axis ofsensitivity indicated by 105 which has a positive direction ofsensitivity indicated by 103. A second inertial sensor device 102 isalso mounted to the substrate 100, in such a way that its axis ofsensitivity indicated by 106 opposes axis 105, causing its positivedirection of sensitivity indicated by 104 to oppose direction 103.

Similarly, FIG. 1C depicts a system that includes 3-axis angular ratesensors. As illustrated in FIG. 1C, a first inertial sensor device 121is mounted to a substrate 120, with a first axis of sensitivityindicated by 125 which has a positive direction of sensitivity indicatedby 123. The first inertial sensor device 121 also has a second axis ofsensitivity indicated by 129 which has a positive direction ofsensitivity indicated by 127. Additionally, the first inertial sensordevice 121 has a third axis of sensitivity indicated by 133 which has apositive direction of sensitivity indicated by 131. A second inertialsensor device 122 is also mounted to the substrate 120, in such a waythat its first axis of sensitivity indicated by 126 opposes axis 125,causing its positive direction of sensitivity as indicated by 124 tooppose direction 123. The second inertial sensor device 122 has a secondaxis of sensitivity indicated by 130 that opposes axis 129, causing itspositive direction of sensitivity indicated by 128 to oppose direction127. The second inertial sensor device 122 also has a third axis ofsensitivity indicated by 134 that opposes axis 133, causing its positivedirection of sensitivity indicated by 132 to oppose direction 131.Within any axis-reversed pair, each sensor device will experienceinertial events of equal, but opposite magnitudes. Thus, the differencebetween inertial sensor devices in a pair becomes a virtual sensor thatexhibits a natural cancellation of non-inertially induced signals suchas thermally induced offset drift, RFI induced measurement noise, andvibration-induced measurement noise.

Sensor Array

Also included herein are embodiments where inertial sensor device pairswill be organized as a redundant inertial sensor array that include aplurality of redundancies for each axis of measurement. An example ofsuch a system can be seen in FIG. 2A and FIG. 2B. In these figures, afirst array of inertial sensor devices 201 is affixed to a first side ofa substrate 200, and a second array of inertial sensor devices 202 isaffixed to another side of the substrate so that each inertial sensordevice on each side forms an axis reversed pair with an inertial sensordevice from the other side. Thus, an inertially-induced measurementevent will always be seen coherently by a plurality of inertial sensordevices within the sensor array. Drift or noise-induced measurementevents will be detectable and filtered since these eventsprobabilistically act in a non-coherent way. Inertial sensor devicesalso need not be homogeneous. Fusing data from an array of inertialsensor devices with varying slew-rate ranges and varying resonantstructures/resonant frequencies can allow for the mean and covarianceoutput of the aggregate estimation to achieve accuracies across a widerrange of slew-rates while also rejecting vibration-inducedstructural-resonance noise. FIG. 2C illustrates examples of additionalembodiments of this array. Embodiment 210 is the same array as in FIG.2A and FIG. 2B, comprising 32 inertial sensor devices. Embodiment 211 isa stack of four of the array of 210, comprising total 128 inertialsensor devices. Embodiment 212 is three planes of 32 inertial sensordevices, placed so that each plane is orthogonal to the other two,comprising 96 total inertial sensor devices. Embodiment 213 is similarto the array of 212, but with nine planes of 32 inertial sensor devices,three planes on each axis, comprising 288 total inertial sensor devices.Embodiment 214 has inertial sensor devices mounted non-orthogonally on acircular substrate, comprising 24 inertial sensor devices. Embodiment215 is a stack of four of the array of 214, comprising 96 total inertialsensor devices. Embodiment 216 is three planes of 24 inertial sensordevices, placed so that each plane is orthogonal to the other two,comprising 72 total inertial sensor devices. Embodiment 217 is similarto the array of 214, but with nine planes of 16 inertial sensor devices,placed so four of the arrays are parallel to each of the three axes,comprising 144 total inertial sensor devices.

Sensor Array Cross-Associating

FIG. 7 depicts a method of creating a plurality of virtual inertialsensors for determining an inertial quantity of a system. For eachvirtual sensor output value, Inertial sensor data 701 is acquired from aset of N inertial sensor devices 700, where N is a number of inertialsensor devices being measured. Data from a first set selection 702 andsecond set selection 703 of inertial sensor devices, chosen from the setof N inertial sensor devices, is combined 704 to generate a virtualsensor output value 705 which is output 706.

Additionally, in some embodiments, the data from each inertial sensordevice will be paired with the data of an inertial sensor device in theaxis-reversed inertial sensor device set thus creating a set ofdifferential “virtual” sensor output values. Thus, an array of Ninertial sensor device pairs produces N² virtual sensor output values.The reason for this is three-fold: virtual sensor output valuesresulting from good sensor pairings are ensured, fault-tolerance isenhanced since as many as 2N−2 sensors may fail without impairing thesystem, and more virtual sensor output values are presented to theparticle filter thus reducing effects of sample improverishment. Process300 in FIG. 3 illustrates an inertial sensor device pair configurationwhere N, the number of inertial sensor device pairs, is 4. Asillustrated in the example of FIG. 3, each inertial sensor device inarray 301 is paired with each inertial sensor device in array 302 asdisplayed in the cross-over graph 303, producing a virtual sensor array.

Hybrid Unscented Kalman/Particle Filter-Based Redundant Sensor Fusion

The use of a sensor array provides redundancy which allowscross-correlation and hence characterization of both base-signalcharacteristics and noise characteristics across the inertial sensordevice array. Cross-correlation/sensor fusion is accomplished with ahybrid Unscented Kalman/Particle Filter or “Unscented Particle Filter”(UPF). The UPF technique incorporates an Unscented Kalman Filter (UKF)to generate proposal distributions that are then used by the particlefiltering stage. This hybrid technique improves over non-hybrid optimal(Kalman filter) approaches by allowing problem domains that arenon-linear and/or non-Gaussian, in addition to linear and Gaussiandomains. The UPF also improves on generic particle filtering approachessince the use of the UKF allows the use of the most recent inertialsensor device data in the generation of the proposal distributionfunction. It should be noted that this filter could be any Monte Carloestimation-based inference system, but we will present here anembodiment that implements the UPF. A general illustration of where thisalgorithm fits into the system as discussed so far is in FIG. 4. Asillustrated in the example of FIG. 4, two inertial sensor device arrays,400 and 401, are crossed as shown in 402 to produce virtual sensor array403. Virtual sensor output values 403 are then used in Monte Carloestimation-based inference system 404 to produce an estimated output405.

FIG. 5 illustrates the Unscented Particle Filter algorithm as anembodiment of the Monte Carlo estimation-based inference system, asfurther described in Algorithm Details. Specifically, block 505 depictsfilter initialization and includes elements 500-505, and block 506depicts the main loop of the process and includes elements 507-513. Someembodiments may include the following:

-   -   1. Reading initial inertial sensor data 501 from the plurality        of inertial sensor devices.    -   2. Establishing an initial estimation of the initial inertial        sensor data 502.    -   3. Creating a set of particles 503 and establishing a position        for each particle 504 in the set of particles 502.    -   4. Initialize a covariance matrix for an Unscented Kalman Filter        505 for each particle.    -   5. Reading current iteration of inertial sensor data 507 from        the plurality of inertial sensor devices.    -   6. Scattering particle positions 508 for each particle by adding        noise to them according to a probability density function which        may be determined experimentally or may be based on noise        characteristics of the inertial sensor devices being used.    -   7. Use Unscented Kalman Filter 509 to update the position for        each particle further by way of prediction.    -   8. Performing importance sampling 510 by assigning a weight to        each particle based on the probability of the current iteration        of inertial sensor data given that this particle's position is        treated as a sensor data element.    -   9. Normalizing the importance weights 511 of all particles with        respect to the total of all particle importance weights.    -   10. Applying selective-importance-resampling 512 to the        particles to adjust each particle's importance weighting by        comparing each particle to the set of sensor data obtained from        the plurality of inertial sensor devices.    -   11. Generating the virtual sensor output value using an        importance weighted sum 513 of the particles.    -   12. Outputting the virtual sensor output value 514 as a tangible        indication of the inertial quantity.

This process provides a mechanism for the sensors to collectively detectcoherent (inertial) events while rejecting non-coherent (drift/noise)events. Thus, with many inertial sensor devices, individual inertialsensor device process/measurement errors and inertial sensor devicefailures need not affect the reliability of the generalized output. Theimportance-resampling process ensures that good inertial sensor devicepairings are given elevated importance weightings while poor inertialsensor device pairings are given reduced importance.

Furthermore, embodiments disclosed herein can easily be scaled to thedesired level of accuracy by increasing the amount of redundancy. Withina given system this scaling can be performed dynamically thus allowing asystem that can be dynamically adjusted for accuracy/reliability vs.power consumption/responsiveness.

Particle filtering methods also lend themselves well to distributed orparallel processing and can thus be made to perform well inmulti-processing/distributed environments.

In this way, individual inertial sensor device drift and noisecharacteristics are compensated for by giving more weighting to inertialsensor devices that are more accurate, and inertial sensor devices thatare less significant (or have failed) receive a less significant (orzero) weighting. This form of confidence-based redundant unscentedparticle filter-based sensor fusion allows an ultra low-drift, low-noiseoutput to be produced from an array of inherently unreliable and/orinaccurate inertial sensor devices.

Algorithm Details

The Sensor Pairing Algorithm:

In the following, S_(t) refers to inertial sensor devices mounted on afirst side (normal non-axis inverted, hereinafter referred to as “top”)of a substrate. S_(b) refers to inertial sensor devices mounted onanother side (axis-inverted, hereinafter referred to as “bottom”) of thesubstrate. S_(v) refers to virtual sensor output values formed by takingthe difference between a non-axis-inverted and an axis-inverted inertialsensor device pair divided by two, and y0 refers to the initial virtualsensor output value vector.

-   -   1. Get initial measurement from each top and bottom inertial        sensor device to form vectors S_(t)=[S_(t1), S_(t2), . . . ,        S_(tN)] and S_(b)=[S_(b1), S_(b2), . . . , S_(bN)] respectively.        These measurements may undergo normalization and/or additional        processing.    -   2. Create virtual inertial sensors for up to N² top and bottom        pair combinations to form a virtual inertial sensor output value        vector

S _(v)=[(S _(t1) −S _(b1))/2, (S _(t1) −S _(b2))/2, . . . , (S _(tN) −S_(bN)/2].

The Filtering Algorithm:

In the following, x_(k) is the actual inertial sensor device data attime k, {circumflex over (x)}_(k) is the estimated inertial sensordevice data at time k, w_(k) is a random sequence that representsprocess noise, y_(k) is a vector of the measurements from each inertialsensor device at time k, and v_(k) is a random sequence that representsmeasurement noise. The noise vectors are independent white noiseprocesses with known probability density functions. w_(k) has covarianceQ_(k) , and v_(k) has covariance R_(k).

This algorithm works by comparing a set of randomly placed particles toreadings taken from the inertial sensor devices in order to attempt todetermine the true probability density function of the inertial sensordevice data. Kalman filters are used to make the random placementcorrespond more closely to values that would come from the inertialsensor devices.

FIG. 5, and the corresponding description, below, further illustratesthis process. More specifically, block 500 depicts initialization of theprocess and includes elements 500-505, and block 506 depicts the mainloop of the process and includes elements 507-514.

Initialization (Block 500):

-   -   1. Element 501:        -   Get initial measurement from each of N virtual sensors in            S_(v) to form vector y0=S^(T) _(v) which can be written as            [y0₁, y0₂, . . . , y0_(N)]^(T). These measurements may            undergo additional preprocessing.    -   2. Element 502:        -   Set

${\hat{x}}_{0} = {\frac{1}{N}{\sum\limits_{i = 1}^{N}\; {y\; {0_{i}.}}}}$

-   -   3. Elements 503, 504 and 505:        -   For i=1, 2, . . . , M, where M is the number of particles            being used, let X_(0,i) ^(post)* be a 1 component vector            consisting of {circumflex over (x)}₀, and let P_(0,i) be a            1×1 matrix consisting of the variance of y0. These will            serve as the initial position for each particle and the            initial covariance matrix for each Kalman filter,            respectively.

Main Loop (Block 506):

-   -   1. For time periods k=1, 2, . . . do:    -   A. Sensor Read, Element 507:        -   Get measurement from each of N virtual sensors as determined            by the sensor-pairing algorithm at time k to form vector            y_(k).    -   B. Particle Scattering, Element 508:        -   For i=1,2 . . . , M, set X_(k,i) ^(pre)=X_(k−1,i)            ^(post)*+w_(k−1,i) where w_(k−1,i) is a noise value            generated according to the probability density function of            W_(k−1). This gives each particle a random position near its            previous position.    -   C. Unscented Kalman Filter, Element 509:        -   For i=1,2, . . . , M, update X_(k,i) ^(pre) to X_(k,i)            ^(post):    -   i. Time Update:        -   a) Set X_(k,i) ^(a)=[X_(k,i) ^(pre) E[w_(k)]^(T)]^(T). This            forms an augmented state for use by the Unscented transform            by adding information about process noise. Note that if the            process noise is additive, the state may not need to be            augmented at all.        -   b) Set

$P_{k,i}^{a} = {\begin{bmatrix}P_{{k - 1},i} & 0 \\0 & Q_{k}\end{bmatrix}.}$

-   -   -    This forms an augmented covariance matrix for use by the            Unscented transform.        -   c) Set {tilde over (x)}⁽⁰⁾x_(k,i) ^(a). This and (d) and (e)            which follow form the sigma points for the Unscented            transform, which it then uses to get variance information            about the underlying data, regardless of its linearity.        -   d) Set {tilde over (x)}⁽¹⁾X_(k,i) ^(a)+(√{square root over            (P_(k,i) ^(a))})_(i) ^(T) where (√{square root over (P_(k,i)            ^(a))})_(i) ^(T) is the ith column of the matrix square root            of P_(k,i) ^(a).        -   e) Set {tilde over (x)}⁽²⁾x_(k,i) ^(a)−(√{square root over            (P_(k,i) ^(a))})^(T) _(i).        -   f) For j=0, 1,2, set {tilde over (x)}_(k) ^((j))=f({tilde            over (x)}^((j))). f is a function that predicts the next            state given a state. For example, in a system where state            was angular position and angular rate, this would add rate            to position. This function is determined by the properties            of the inertial sensor devices used, the sampling process,            and the physical system.        -   g) Set

${{\hat{x}}_{k}^{pre} = {\sum\limits_{j - 0}^{2}\; {W_{s}^{j}{\overset{\sim}{x}}_{k}^{(j)}}}},{where}$$W_{s}^{0} = {{\frac{\lambda}{1 + \lambda}\mspace{14mu} {and}\mspace{14mu} W_{s}^{j}} = {\frac{1}{2\left( {1 + \lambda} \right)}.}}$

-   -   -    Where λ=α²(1+κ)−1, and α and κ are scaling factors that            control the spread of the sigma points. Usual values for            these are α=10⁻³ and κ=0 , though the values may be            determined experimentally for a given system as used in a            given domain. This computation and the one following it            update the Kalman filter using the sigma points and weights            of the Unscented transform.        -   h) Set

$P_{k}^{pre} = {\sum\limits_{j = 0}^{2}\; {{W_{c}^{j}\left( {{\hat{x}}_{k}^{(j)} - {\hat{x}}_{k}^{pre}} \right)}{\left( {{\hat{x}}_{k}^{(j)} - {\hat{x}}_{k}^{pre}} \right)^{T}.{where}}}}$$W_{c}^{0} = {{\frac{\lambda}{1 + \lambda} + {\left( {1 - \alpha^{2} + \beta} \right)\mspace{14mu} {and}\mspace{14mu} W_{c}^{j}}} = {\frac{1}{2\left( {1 + \lambda} \right)}.}}$

-   -   -    The value β controls the weighting of the 0^(th) sigma            point. β=2 is optimal if x is Gaussian. As with α and κ, the            best value for this may be determined experimentally.

    -   ii. Measurement Update:        -   a) Set x_(k,i) ^(a)=[{circumflex over (x)}_(k) ^(pre)            E[v_(k)]^(T)]^(T). We form new augmented data, this time            with the measurement noise data. As above, this may not need            to be augmented if the noise is additive. The covariance            will still need to be augmented regardless.        -   b) Set

$P_{k,i}^{a} = {\begin{bmatrix}P_{k}^{pre} & 0 \\0 & R_{k}\end{bmatrix}.}$

-   -   -   c) Set {tilde over (x)}⁽⁰⁾=x_(k,i) ^(a). We form another set            of sigma points.        -   d) Set {tilde over (x)}⁽¹⁾=x_(k,i) ^(a)+(√{square root over            (P_(k,i) ^(a))})^(T) _(i).        -   e) Set {tilde over (x)}⁽²⁾=x_(k,i) ^(a)−(√{square root over            (P_(k,i) ^(a))})^(T) _(i).        -   f) For j=0, 1, 2, set ŷ_(k) ^((j))=h({tilde over (x)}_(k)            ^((j))). h is a function that predicts the next measurement            given a state. In a system where state was angular position            and angular rate but only position was measured, this would            strip out rate and just return position. This function is            determined by the properties of the inertial sensor devices            use, the sampling process, and the physical system.        -   g) Set

${\hat{y}}_{k} = {\sum\limits_{j = 0}^{2}\; {W_{s}^{j}{{\hat{y}}_{k}^{(j)}.}}}$

-   -   -   This computation and the two following prepare values for            the Kalman filter based on the Unscented transform.        -   h) Set

$P_{y} = {\sum\limits_{j = 0}^{2}\; {{W_{c}^{j}\left( {{\hat{y}}_{k}^{(j)} - {\hat{y}}_{k}} \right)}{\left( {{\hat{y}}_{k}^{(j)} - {\hat{y}}_{k}} \right)^{T}.}}}$

-   -   -   i) Set

$P_{xy} = {\sum\limits_{j = 0}^{2}\; {{W_{c}^{j}\left( {{\hat{x}}_{k}^{(j)} - {\hat{x}}_{k}^{pre}} \right)}{\left( {{\hat{y}}_{k}^{(j)} - {\hat{y}}_{k}} \right)^{T}.}}}$

-   -   -   j) Set K_(k)=P_(xy)P_(y) ⁻¹. Determine the Kalman gain.        -   k) Set x_(k,i) ^(post)={circumflex over (x)}_(k)            ^(pre)+K_(k)(y_(k)−ŷ_(k)). Determine the final state for            this time period.        -   l) Set P_(k,i)=P_(k) ^(pre)+K_(k)P_(y)K_(k) ^(T). Determine            the final covariance for this time period.

    -   D. Importance Sampling, Element 510:        -   Evaluate the probability density function p(y_(k)|x_(k,i)            ^(post)) based on the measurement equation and the            probability density function of the measurement noise to            compute the relative likelihood of q_(i) each particle            x_(k,i) ^(post). In other words, determine how likely we are            to get the actual inertial sensor device data we did if this            particle's position represented a sensor dated element.

    -   E. Normalization, Element 511:        -   Set

$q_{i} = {\frac{q_{i}}{\sum\limits_{j = 1}^{N}\; q_{j}}.}$

-   -   -    In other words, normalize the weights so they sum to 1.

    -   F. Resampling, Element 512:        -   For i=1,2, . . . , M, do:            -   i. Generate a random number r uniformly distributed on                [0,1].            -   ii. Calculate the smallest t such that

${\sum\limits_{p = 1}^{t}\; q_{p}} \geq {r.}$

-   -   -   -   iii. Set x_(k,i) ^(post)*=x_(k,t) ^(post)                -   (Resampling essentially causes each new particle to                    choose from among the current particles, in a                    weighted fashion, a parent. Each particle's position                    becomes that of its parent.)

    -   G. Prediction, Element 513:        -   Calculate the estimated physical quantity

${{\hat{x}}_{k}\frac{1}{N}{\sum\limits_{i \approx 1}^{N}\; x_{k,i}^{{post}^{*}}}} \approx {{E\left( x_{k} \middle| y_{k} \right)}.}$

-   -   -   Note that instead of being done this way, this might also be            done by taking a weighted sum of the particles before the            resampling (Element 512) is performed.        -   The method that is best for a given problem domain may be            determined experimentally.

    -   H. Element 514:        -   Output the estimated inertial quantity {circumflex over            (x)}_(k).

It should also be noted that elements 508, 509, and 510 may be performedin parallel for each particle, so as to distribute the work that must bedone.

There are many variations one could make to the content laid out in thisdescription. It is to be understood that those are still to beconsidered as being part of this description, and that the removal ofpresented elements or addition of new elements to what was presented isstill meant to be covered by this description.

All words used in this document to describe the method which has beendescribed are meant not just to mean what they commonly mean, but alsoto include any other meanings which they may be understood as having inthe context of this document.

1. A method of determining an inertial quantity in a system with linear,non-linear, Gaussian, or non-Gaussian characteristics or combinationsthereof, the method comprising: associating a plurality of inertialsensor devices with the system; acquiring inertial sensor data form theplurality of inertial sensor devices; utilizing a computing device forprocessing the inertial sensor data by application of a Monte Carloestimation-based inference system configured to produce estimates insystems with linear, non-linear, Gaussian, and non-Gaussiancharacteristics, wherein the computing device produces a virtualconnection between at least two of the plurality of inertial sensordevices, resulting in a virtual sensor output value, the virtual sensoroutput value being of a degree of accuracy exceeding that which wouldotherwise be attributable to one of the single inertial sensor devices;and utilizing the virtual sensor output value as at least part of atangible indication of the inertial quantity.
 2. The method of claim 1,wherein the Monte Carlo estimation-based inference system comprises anUnscented Particle Filter, incorporating an Unscented Kalman Filter toperform predictions of time updates and measurement updates for eachparticle.
 3. The method of claim 1, wherein the computing devicecomprises a firmware controlled digital processor, a programmed portionof a digital software controlled computer, a logic circuit, or anapplication-specific integrated circuit for performing the recitedfunction.
 4. The method of claim 1, wherein the Monte Carloestimation-based inference system is an Unscented Particle Filter,configured to perform the following: read initial inertial sensor datafrom the plurality of inertial sensor devices; establish an initialestimation of the initial inertial sensor data; create a set ofparticles and establishing a position for each particle in the set ofparticles; initialize a covariance matrix for an Unscented Kalman Filterfor each particle; execute an Unscented Particle Filter update processat least one time, comprising: read current iteration of inertial sensordata from the plurality of inertial sensor devices; scatter particlepositions for each particle by adding noise to them according to aprobability density function which may be determined experimentally ormay be based on noise characteristics of the inertial sensor devicesbeing used; use an Unscented Kalman Filter to update the position foreach particle further by way of prediction; perform an importancesampling by assigning a weight to each particle based on the probabilityof the current iteration of inertial sensor data given that thisparticle's position is treated as a sensor data element; normalize theimportance weights of all particles with respect to the total of allparticle importance weights: apply selective-importance-resampling tothe particles to adjust each particle's importance weighting bycomparing each particle to the set of inertial sensor data obtained fromthe plurality of inertial sensor devices; generate the virtual sensoroutput value using an importance weighted sum of the particles; andoutput the virtual sensor output value as a tangible indication of theinertial quantity.
 5. The method of claim 1, in which the Monte Carloestimation-based inference system is a Particle Filter, SamplingImportance Resampling Filter, Auxiliary Particle Filter, Extended KalmanParticle Filter, Condensation Particle Filter, Ensemble Kalman Filter,or Markov Chain Monte Carlo process.
 6. The method of claim 1, in whichthe Monte Carlo estimation-based inference system is dynamicallyselected from a set of Monte Carlo estimation-based inference systemsbased on a set of operating and performance characteristic criteria,such as algorithmic execution time or accuracy.
 7. An apparatusdetermining an inertial quantity of a system, comprising: a substrate; afirst inertial sensor device that comprises a first axis with acorresponding first direction of sensitivity, the first inertial sensordevice being coupled to the substrate; a second inertial sensor devicethat comprises a second axis with a corresponding second direction ofsensitivity, the second inertial sensor device being coupled to thesubstrate, wherein the second direction of sensitivity is invertedrelative to the first direction of sensitivity; a computing device forprocessing inertial sensor data from the first inertial sensor device,and inertial sensor data from the second inertial sensor device;generating a virtual sensor output value from the inertial sensor datafrom the first inertial sensor device and the inertial sensor data fromthe second inertial sensor device; and utilizing the virtual sensoroutput value as at least part of a tangible indication of the inertialquantity.
 8. The apparatus of claim 7, wherein the computing devicecomprises a firmware controlled digital processor, a programmed portionof a digital software controlled computer, a logic circuit, anapplication-specific integrated circuit, or an analog circuit, forperforming the recited function.
 9. A method of creating a plurality ofvirtual inertial sensors for determining an inertial quantity of asystem, comprising: associating a plurality of inertial sensor deviceswith the system; acquiring inertial sensor data from a set of N inertialsensor devices, where N is a number of inertial sensor devices beingmeasured; combining by a computing device, data from a first inertialsensor device, chosen from the set of N inertial sensor devices, withdata from a second inertial sensor device, chosen from the set of Ninertial sensor devices; generating a virtual sensor output value fromthe inertial sensor data from the first inertial sensor device and theinertial sensor data from the second inertial sensor device; andutilizing the virtual sensor output value as at least part of a tangibleindication of the inertial quantity.
 10. The method of claim 9, in whichinertial sensor data from a first set of one or more inertial sensordevices, chosen from the set of N inertial sensor devices, is combinedwith inertial sensor data from a second set of one or more inertialsensor devices, chosen from the set of N inertial sensor devices. 11.The method of claim 9, in which the virtual sensor output valuesgenerated by the computing device are dynamically generated based on aset of operating and performance characteristic criteria, such asalgorithmic execution time or accuracy.
 12. The apparatus of claim 9,wherein the computing device comprises a firmware controlled digitalprocessor, a programmed portion of a digital software controlledcomputer, a logic circuit, an application-specific integrated circuit,or an analog circuit, for performing the recited function.